package com.googlecode.rulio;

import com.googlecode.totallylazy.Predicate;
import com.googlecode.totallylazy.Predicates;

public abstract class Action<T, R> extends ActivatingAction<Action<T, R>> {
    Action<T, R> activate(ActionActivator activator) throws Exception {
        return this;
    }

    Predicate predicate() {
        return Predicates.always();
    }

    public abstract R execute(T object) throws Exception;
}
